package common.utils;

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;

public class GetAllFilesOfDir {
	
	
	public GetAllFilesOfDir(){
		
	}


	/**
	 * Devuelve una lista de paths abstractos de archivos contenidos en el 
	 * directorio pasado como parametro, o vacia si el directorio no existe
	 * @return
	 */
	public List<File> getListNameOfFilesInDir(String dirName){
		
		File dir=new File(dirName);
		List<File> archivos= new ArrayList<File>();
		if (dir.exists())
			
			for (File file: dir.listFiles())
				
				if (file.isFile())
					archivos.add(file);
				
		return archivos;

	}

	/**
	 * Devuelve el archivo buscado si existe 
	 * @return
	 */
	public File getNameOfFilesInDir(File dir,FilenameFilter filtro){
		
		if (dir.exists())
			
			for (File file: dir.listFiles(filtro))
				
				if (file.isFile())
					return file;
				
		return null;

	}
	
	
	/**
	 * Devuelve una lista de paths abstractos de directorios contenidos en el 
	 * directorio pasado como parametro, o vacia si el directorio no existe.
	 * Si el filtro == null, entonces carga todos los directorios
	 * @return
	 */
	public List<File> getListNameOfDirInDir(String dirName,FilenameFilter filtro){
		
		File dir=new File(dirName);
		List<File> archivos= new ArrayList<File>();
		if (dir.exists())
			
			for (File file: dir.listFiles(filtro))
				
				if (file.isDirectory())
					archivos.add(file);
				
		return archivos;

	}

	
	public static void main(String[] args) {
	
		GetAllFilesOfDir g=new GetAllFilesOfDir();
		List<File> lista=g.getListNameOfFilesInDir("d:/workspace/CommonUtils");
		
		for (File file: lista)
			System.out.println(file.getAbsolutePath());
	}
	
}
